我是怎样教媳妇面向对象编程的 - 技术翻译 - 开源中国社区

创建时间:2015/9/8 17:56
来源:http://www.oschina.net/translate/how-i-explained-ood-to-my-wife?lang=chs&page=4#


妻子:那太可怕了!这样的话,要是汽车引擎故障,你得整车修理,或者买一辆新车!

丈夫:是的,那么怎么做到"可插拔"呢?

妻子:关键是”抽象“,是吧?

丈夫:对。现实世界中,汽车是高层级的模块/实体,它依赖于底层级的模块/实体,例如引擎和轮子。

相较于直接依赖于实体的引擎或轮子,汽车应该依赖于抽象的引擎或轮子的规格,这样只要是符合这个抽象规格的引擎或轮子,都可以装到车里跑。

K6F
K6F
翻译于 3年前

3人顶

 翻译的不错哦!

来看看下面的图:

依赖倒置原则的类层次结构

丈夫:注意上面的 Car类,它有两个属性,且都是抽象类型(接口)而非实体的。

引擎和车轮是可插拔的,这样汽车能接受任何实现了声明接口的对象,且 Car 类无需任何改动。

妻子:所以,如果代码不遵循依赖倒置,就有下面的风险:

  • 使用低层级类会破环高层级代码;
  • 当低层级的类变化时,需要太多时间和代价来修改高层级代码;
  • 代码可复用性不高

丈夫:亲爱的,你说到点子上了!

K6F
K6F
翻译于 3年前

2人顶

 翻译的不错哦!

总结

丈夫:除 SOLID 原则外还有很多别的面向对象原则。比如:

  • “组合替代继承”:是说“用组合比用继承好”;
  • “笛米特法则”:是说“类对其它类知道的越少越好”;
  • “共同封闭原则”:是说“相关类应该一起打包”;
  • “稳定抽象原则”:这是说"类越稳定,就越应该是抽象类";

妻子:我得学习这些原则吗?

丈夫:当然了。你可以在网上学习。Google 它,学习它,理解它。有问题就找我。

妻子:我听说还有些根据设计原则编写的设计模式。

丈夫:对的。设计模式不过就是针对一些经常出现的场景的一些通用的设计建议。主要的想法还是面向对象原则。你可以认为设计模式是“框架”,OOD 原则是“规范”。

妻子:那么之后我将学习设计模式是吧?

丈夫:是的,亲爱的。

妻子:应该会很有意思。

丈夫:必须地!

K6F
K6F
翻译于 3年前

5人顶

 翻译的不错哦!

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们

回页面顶部发表评论 网友评论58

  • Jekey
    Jekey 发表于 2013-01-09 11:07
    这篇不错啊,通俗易懂!
  • 凡程子
    凡程子 发表于 2013-01-09 12:54

    引用来自“Jekey”的评论

    这篇不错啊,通俗易懂!

    哈哈,是的,也有助有学习噢。。
  • 王薇
    王薇 发表于 2013-01-09 13:18
    有个这样的老公真是不错啊。。。
  • 红薯
    红薯 发表于 2013-01-09 13:49

    引用来自“王薇”的评论

    有个这样的老公真是不错啊。。。

    要是不用学这些,就更不错啦,哈:)
  • 王薇
    王薇 发表于 2013-01-09 14:04

    引用来自“红薯”的评论

    引用来自“王薇”的评论

    有个这样的老公真是不错啊。。。

    要是不用学这些,就更不错啦,哈:)

    哈哈,我们去面向对象求个baoyang属性吧,或者找个父亲求继承吧
  • K6F
    K6F 发表于 2013-01-09 14:17

    引用来自“王薇”的评论

    引用来自“红薯”的评论

    引用来自“王薇”的评论

    有个这样的老公真是不错啊。。。

    要是不用学这些,就更不错啦,哈:)

    哈哈,我们去面向对象求个baoyang属性吧,或者找个父亲求继承吧

    父类多半抽象,实现还靠自己啊
  • 萝卜胡
    萝卜胡 发表于 2013-01-09 15:53
    上学期上系统设计与分析课的时候,老师就给我们讲这些内容。当时就是虽不明但觉厉。
  • ldl123292
    ldl123292 发表于 2013-01-09 16:05
    媳妇这词翻译的好
  • 丛灵始
    丛灵始 发表于 2013-01-09 16:23
    呵呵,趣味横生
  • stovelevon
    stovelevon 发表于 2013-01-09 16:30
    简单说,就是“物以类聚”
    让相关的东西,尽可能在一起,通过一个抽象层,相互联系,却又不知道对方的存在
    让不相干的东西,尽可能分开

    联系相关类的就是它们抽象后的属性和动作,抽象不应该太高级,有个度,这个纯粹是经验了,看需求来决定
  • NoTtttt
    NoTtttt 发表于 2013-01-09 17:02
    很好的文章!
  • 王雾
    王雾 发表于 2013-01-09 17:19
    很不错,呵呵。值得学习
  • 金三胖
    金三胖 发表于 2013-01-09 17:32
    全部看完了,不错的文章,谢谢各位翻译者
  • 贰拾壹
    贰拾壹 发表于 2013-01-09 18:00
    呵呵
  • 川泽人
    川泽人 发表于 2013-01-09 18:15
    支持,这边文章挺好的
  • 十一文
    十一文 发表于 2013-01-09 18:21
    bucuo 收藏了
  • tsl0922
    tsl0922 发表于 2013-01-09 18:48
    教程看完,就差媳妇了,怎么办?
  • shking
    shking 来自 Android 发表于 2013-01-09 19:21
    吃着饺子,跟媳妇学ood,有味道
  • ╭ァの修罗
    ╭ァの修罗 发表于 2013-01-09 19:21
    翻译的很生动啊(*^__^*) 。
  • EREHMii
    EREHMii 发表于 2013-01-09 19:59
    好文, 5大面向对象的原则都讲到了.... 木有找到收藏的功能.... 先放动弹里算鸟....
101

我是怎样教媳妇面向对象编程的

英文原文:How I explained OOD to my wife

标签: 面向对象
373人收藏此文章, 我要收藏 凡程子 推荐于 3年前 (共 33 段, 翻译完成于 01-09) (58评)

妻子:那太可怕了!这样的话,要是汽车引擎故障,你得整车修理,或者买一辆新车!

丈夫:是的,那么怎么做到"可插拔"呢?

妻子:关键是”抽象“,是吧?

丈夫:对。现实世界中,汽车是高层级的模块/实体,它依赖于底层级的模块/实体,例如引擎和轮子。

相较于直接依赖于实体的引擎或轮子,汽车应该依赖于抽象的引擎或轮子的规格,这样只要是符合这个抽象规格的引擎或轮子,都可以装到车里跑。

K6F
K6F
翻译于 3年前

3人顶

 翻译的不错哦!

来看看下面的图:

依赖倒置原则的类层次结构

丈夫:注意上面的 Car类,它有两个属性,且都是抽象类型(接口)而非实体的。

引擎和车轮是可插拔的,这样汽车能接受任何实现了声明接口的对象,且 Car 类无需任何改动。

妻子:所以,如果代码不遵循依赖倒置,就有下面的风险:

  • 使用低层级类会破环高层级代码;
  • 当低层级的类变化时,需要太多时间和代价来修改高层级代码;
  • 代码可复用性不高

丈夫:亲爱的,你说到点子上了!

K6F
K6F
翻译于 3年前

2人顶

 翻译的不错哦!

总结

丈夫:除 SOLID 原则外还有很多别的面向对象原则。比如:

  • “组合替代继承”:是说“用组合比用继承好”;
  • “笛米特法则”:是说“类对其它类知道的越少越好”;
  • “共同封闭原则”:是说“相关类应该一起打包”;
  • “稳定抽象原则”:这是说"类越稳定,就越应该是抽象类";

妻子:我得学习这些原则吗?

丈夫:当然了。你可以在网上学习。Google 它,学习它,理解它。有问题就找我。

妻子:我听说还有些根据设计原则编写的设计模式。

丈夫:对的。设计模式不过就是针对一些经常出现的场景的一些通用的设计建议。主要的想法还是面向对象原则。你可以认为设计模式是“框架”,OOD 原则是“规范”。

妻子:那么之后我将学习设计模式是吧?

丈夫:是的,亲爱的。

妻子:应该会很有意思。

丈夫:必须地!

K6F
K6F
翻译于 3年前

5人顶

 翻译的不错哦!

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们

回页面顶部发表评论 网友评论58

  • Jekey
    Jekey 发表于 2013-01-09 11:07
    这篇不错啊,通俗易懂!
  • 凡程子
    凡程子 发表于 2013-01-09 12:54

    引用来自“Jekey”的评论

    这篇不错啊,通俗易懂!

    哈哈,是的,也有助有学习噢。。
  • 王薇
    王薇 发表于 2013-01-09 13:18
    有个这样的老公真是不错啊。。。
  • 红薯
    红薯 发表于 2013-01-09 13:49

    引用来自“王薇”的评论

    有个这样的老公真是不错啊。。。

    要是不用学这些,就更不错啦,哈:)
  • 王薇
    王薇 发表于 2013-01-09 14:04

    引用来自“红薯”的评论

    引用来自“王薇”的评论

    有个这样的老公真是不错啊。。。

    要是不用学这些,就更不错啦,哈:)

    哈哈,我们去面向对象求个baoyang属性吧,或者找个父亲求继承吧
  • K6F
    K6F 发表于 2013-01-09 14:17

    引用来自“王薇”的评论

    引用来自“红薯”的评论

    引用来自“王薇”的评论

    有个这样的老公真是不错啊。。。

    要是不用学这些,就更不错啦,哈:)

    哈哈,我们去面向对象求个baoyang属性吧,或者找个父亲求继承吧

    父类多半抽象,实现还靠自己啊
  • 萝卜胡
    萝卜胡 发表于 2013-01-09 15:53
    上学期上系统设计与分析课的时候,老师就给我们讲这些内容。当时就是虽不明但觉厉。
  • ldl123292
    ldl123292 发表于 2013-01-09 16:05
    媳妇这词翻译的好
  • 丛灵始
    丛灵始 发表于 2013-01-09 16:23
    呵呵,趣味横生
  • stovelevon
    stovelevon 发表于 2013-01-09 16:30
    简单说,就是“物以类聚”
    让相关的东西,尽可能在一起,通过一个抽象层,相互联系,却又不知道对方的存在
    让不相干的东西,尽可能分开

    联系相关类的就是它们抽象后的属性和动作,抽象不应该太高级,有个度,这个纯粹是经验了,看需求来决定
  • NoTtttt
    NoTtttt 发表于 2013-01-09 17:02
    很好的文章!
  • 王雾
    王雾 发表于 2013-01-09 17:19
    很不错,呵呵。值得学习
  • 金三胖
    金三胖 发表于 2013-01-09 17:32
    全部看完了,不错的文章,谢谢各位翻译者
  • 贰拾壹
    贰拾壹 发表于 2013-01-09 18:00
    呵呵
  • 川泽人
    川泽人 发表于 2013-01-09 18:15
    支持,这边文章挺好的
  • 十一文
    十一文 发表于 2013-01-09 18:21
    bucuo 收藏了
  • tsl0922
    tsl0922 发表于 2013-01-09 18:48
    教程看完,就差媳妇了,怎么办?
  • shking
    shking 来自 Android 发表于 2013-01-09 19:21
    吃着饺子,跟媳妇学ood,有味道
  • ╭ァの修罗
    ╭ァの修罗 发表于 2013-01-09 19:21
    翻译的很生动啊(*^__^*) 。
  • EREHMii
    EREHMii 发表于 2013-01-09 19:59
    好文, 5大面向对象的原则都讲到了.... 木有找到收藏的功能.... 先放动弹里算鸟....
101

我是怎样教媳妇面向对象编程的

英文原文:How I explained OOD to my wife

标签: 面向对象
373人收藏此文章, 我要收藏 凡程子 推荐于 3年前 (共 33 段, 翻译完成于 01-09) (58评)

妻子:那太可怕了!这样的话,要是汽车引擎故障,你得整车修理,或者买一辆新车!

丈夫:是的,那么怎么做到"可插拔"呢?

妻子:关键是”抽象“,是吧?

丈夫:对。现实世界中,汽车是高层级的模块/实体,它依赖于底层级的模块/实体,例如引擎和轮子。

相较于直接依赖于实体的引擎或轮子,汽车应该依赖于抽象的引擎或轮子的规格,这样只要是符合这个抽象规格的引擎或轮子,都可以装到车里跑。

K6F
K6F
翻译于 3年前

3人顶

 翻译的不错哦!

来看看下面的图:

依赖倒置原则的类层次结构

丈夫:注意上面的 Car类,它有两个属性,且都是抽象类型(接口)而非实体的。

引擎和车轮是可插拔的,这样汽车能接受任何实现了声明接口的对象,且 Car 类无需任何改动。

妻子:所以,如果代码不遵循依赖倒置,就有下面的风险:

  • 使用低层级类会破环高层级代码;
  • 当低层级的类变化时,需要太多时间和代价来修改高层级代码;
  • 代码可复用性不高

丈夫:亲爱的,你说到点子上了!

K6F
K6F
翻译于 3年前

2人顶

 翻译的不错哦!

总结

丈夫:除 SOLID 原则外还有很多别的面向对象原则。比如:

  • “组合替代继承”:是说“用组合比用继承好”;
  • “笛米特法则”:是说“类对其它类知道的越少越好”;
  • “共同封闭原则”:是说“相关类应该一起打包”;
  • “稳定抽象原则”:这是说"类越稳定,就越应该是抽象类";

妻子:我得学习这些原则吗?

丈夫:当然了。你可以在网上学习。Google 它,学习它,理解它。有问题就找我。

妻子:我听说还有些根据设计原则编写的设计模式。

丈夫:对的。设计模式不过就是针对一些经常出现的场景的一些通用的设计建议。主要的想法还是面向对象原则。你可以认为设计模式是“框架”,OOD 原则是“规范”。

妻子:那么之后我将学习设计模式是吧?

丈夫:是的,亲爱的。

妻子:应该会很有意思。

丈夫:必须地!

K6F
K6F
翻译于 3年前

5人顶

 翻译的不错哦!

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们

回页面顶部发表评论 网友评论58

  • Jekey
    Jekey 发表于 2013-01-09 11:07
    这篇不错啊,通俗易懂!
  • 凡程子
    凡程子 发表于 2013-01-09 12:54

    引用来自“Jekey”的评论

    这篇不错啊,通俗易懂!

    哈哈,是的,也有助有学习噢。。
  • 王薇
    王薇 发表于 2013-01-09 13:18
    有个这样的老公真是不错啊。。。
  • 红薯
    红薯 发表于 2013-01-09 13:49

    引用来自“王薇”的评论

    有个这样的老公真是不错啊。。。

    要是不用学这些,就更不错啦,哈:)
  • 王薇
    王薇 发表于 2013-01-09 14:04

    引用来自“红薯”的评论

    引用来自“王薇”的评论

    有个这样的老公真是不错啊。。。

    要是不用学这些,就更不错啦,哈:)

    哈哈,我们去面向对象求个baoyang属性吧,或者找个父亲求继承吧
  • K6F
    K6F 发表于 2013-01-09 14:17

    引用来自“王薇”的评论

    引用来自“红薯”的评论

    引用来自“王薇”的评论

    有个这样的老公真是不错啊。。。

    要是不用学这些,就更不错啦,哈:)

    哈哈,我们去面向对象求个baoyang属性吧,或者找个父亲求继承吧

    父类多半抽象,实现还靠自己啊
  • 萝卜胡
    萝卜胡 发表于 2013-01-09 15:53
    上学期上系统设计与分析课的时候,老师就给我们讲这些内容。当时就是虽不明但觉厉。
  • ldl123292
    ldl123292 发表于 2013-01-09 16:05
    媳妇这词翻译的好
  • 丛灵始
    丛灵始 发表于 2013-01-09 16:23
    呵呵,趣味横生
  • stovelevon
    stovelevon 发表于 2013-01-09 16:30
    简单说,就是“物以类聚”
    让相关的东西,尽可能在一起,通过一个抽象层,相互联系,却又不知道对方的存在
    让不相干的东西,尽可能分开

    联系相关类的就是它们抽象后的属性和动作,抽象不应该太高级,有个度,这个纯粹是经验了,看需求来决定
  • NoTtttt
    NoTtttt 发表于 2013-01-09 17:02
    很好的文章!
  • 王雾
    王雾 发表于 2013-01-09 17:19
    很不错,呵呵。值得学习
  • 金三胖
    金三胖 发表于 2013-01-09 17:32
    全部看完了,不错的文章,谢谢各位翻译者
  • 贰拾壹
    贰拾壹 发表于 2013-01-09 18:00
    呵呵
  • 川泽人
    川泽人 发表于 2013-01-09 18:15
    支持,这边文章挺好的
  • 十一文
    十一文 发表于 2013-01-09 18:21
    bucuo 收藏了
  • tsl0922
    tsl0922 发表于 2013-01-09 18:48
    教程看完,就差媳妇了,怎么办?
  • shking
    shking 来自 Android 发表于 2013-01-09 19:21
    吃着饺子,跟媳妇学ood,有味道
  • ╭ァの修罗
    ╭ァの修罗 发表于 2013-01-09 19:21
    翻译的很生动啊(*^__^*) 。
  • EREHMii
    EREHMii 发表于 2013-01-09 19:59
    好文, 5大面向对象的原则都讲到了.... 木有找到收藏的功能.... 先放动弹里算鸟....